package com.huilian.iotbox.data.po;

import com.huilian.iotbox.data.dto.QueryParam;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Objects;

/**
 * @author 谢洛涛
 * @date 2021/1/11 17:39
 */
@Data
@ToString(callSuper = true)
public class MerchantStore extends QueryParam implements Serializable {
    private Integer id;

    private Integer userId;
    /**
     * 商户Id
     */
    private Integer mchId;

    private String merchantId;
    /**
     * 线下收款码费率
     */
    private BigDecimal offlineCollectionCodeRate;

    /**
     * 场地名称
     */
    private String storeName;

    private Integer status;
    // 冻结原因
    private String freezeReason;

    /**
     * 销售价
     */
    private BigDecimal salesPrice;

    /**
     * 门店单日限额
     */
    private BigDecimal dayQuota;
    /**
     * 会员每分钟限额
     */
    private BigDecimal memberMinuteQuota;
    /**
     * 会员每分钟限制笔数
     */
    private Integer memberMinutePayCount;
    /**
     * 会员每小时限额
     */
    private BigDecimal memberHourQuota;
    /**
     * 会员每小时限制笔数
     */
    private Integer memberHourPayCount;
    /**
     * 会员每天限额
     */
    private BigDecimal memberDayQuota;
    /**
     * 会员每天限制笔数
     */
    private Integer memberDayPayCount;


    /**
     * 省
     */
    private String province;
    /**
     * 市
     */
    private String city;

    /**
     * 区
     */
    private String district;

    /**
     * 场地地址
     */
    private String address;
    /**
     * 场地经度
     */
    private String longitude;
    /**
     * 场地维度
     */
    private String latitude;
    //营业开始时间
    private String businessStartTime;
    //营业结束时间
    private String businessEndTime;
    /**
     * 是否开启优惠(默认开启)  1开启  2关闭
     */
    private Boolean discountStatus;
    /**
     * 最大折扣比例，比如：0.01 表示 1%，最小是0.01元
     */
    private BigDecimal maxDiscountRate;

    /**
     * 设备类型id
     */
    private Integer deviceTypeId;


    private Boolean custom_isShow;

//    List<MemberVo> memberList;

    /**
     * 是否开启兑换商城
     */
    private Boolean isExchange;
    /**
     * 自动退款
     */
    private Boolean automaticRefund;

    /**
     * 自动投币
     */
    private Boolean automaticCoin;

    private String payCompanyCode;

    private Boolean defaultStatus;

    private Integer noticeMessageContentId;
    private Integer noticeMessageTagId;

    private String content;

    private String tag;

    /**
     * 套餐计量单位，如：局、次、分钟、圈
     */
    private String measuringUnit;
    /**
     * 套餐模式，null/0：游戏币模式，1：充值模式
     */
    private Integer packageModel;
    /**
     * 抖音店铺定位ID
     */
    private String douYinPoiId;

    /**
     * 抖音账户Id
     */
    private String douYinAccountId;
    /**
     * 美团店铺ID
     */
    private String meiTuanOpenShopUuId;

    private Boolean fillInMemberInfo;

    /**
     * 限制距离，单位：米
     */
    private Integer distance;

    /**
     * 抖音核销服务费，0.6%存入是0.006
     */
    private BigDecimal tiktokRate;

    /**
     * 美团核销服务费，0.6%存入是0.006
     */
    private BigDecimal meiTuanRate;
    /**
     * 专属微信小程序
     */
    private Integer dedicatedWeChatApplet;
    /**
     * 专属支付宝小程序
     */
    private Integer dedicatedALiApplet;
    /**
     * 专属公众号
     */
    private Integer dedicatedOfficialAccount;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        MerchantStore that = (MerchantStore) o;
        return id.equals(that.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), id);
    }
}
